﻿<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>WIN32_FIND_DATA</title>
<meta http-equiv="Content-Type" Content="text/html; charset=utf-8">
<link rel="stylesheet" type="text/css" href="../../styles/styles.css">
<script language="javascript" src='../links.js' type="text/javascript"></script>
</head>
<body>

<h1>WIN32_FIND_DATA</h1>
<div class=navbar>
<a href="../index.html">главная</a> |
<a href="../structures/index.html">структуры</a> |
<a href="index.html">win32 структуры</a>
</div>


<div class=shortdescr>
Структура <code>WIN32_FIND_DATA</code> описывает
файл, найденный функциями <code><a class="msdocs">FindFirstFile</a></code>, <code><a class="msdocs">FindFirstFileEx</a></code>
или <code><a class="msdocs">FindNextFile</a></code>.
</div>

<pre class=syntax>
typedef struct _WIN32_FIND_DATA {
  DWORD dwFileAttributes;
  FILETIME ftCreationTime;
  FILETIME ftLastAccessTime;
  FILETIME ftLastWriteTime;
  DWORD nFileSizeHigh;
  DWORD nFileSizeLow;
  DWORD dwReserved0;
  DWORD dwReserved1;
  TCHAR cFileName[ MAX_PATH ];
  TCHAR cAlternateFileName[ 14 ];
} WIN32_FIND_DATA;
</pre>

<h3>Элементы</h3>
<div class=descr>
    <div class=dfn>dwFileAttributes</div>
    <div class=dfndescr>Указывает атрибуты найденного файла. Этот элемент может быть комбинацией
    следующих значений:

       <table class="cont">
       <tr class="cont"><th class="cont" width="40%">Атрибут</th><th class="cont" width="60%">Описание</th></tr>
        <tr class="cont"><td class="cont" width="40%"><a name="FILE_ATTRIBUTE_ARCHIVE">FILE_ATTRIBUTE_ARCHIVE</a></td>
        <td class="cont" width="60%">Это архивный файл. Приложения должны использовать этот флаг
        для копирования, архивирования или удаления.</td></tr>

        <tr class="cont"><td class="cont" width="40%"><a name="FILE_ATTRIBUTE_COMPRESSED">FILE_ATTRIBUTE_COMPRESSED</a></td>
        <td class="cont" width="60%">Файл или каталог сжат. Для файла это означает, что
        все данные его сжаты, для каталога - что компрессия по умолчанию
        применяется ко всем его файлам и подкаталогам.</td></tr>

        <tr class="cont"><td class="cont" width="40%"><a name="FILE_ATTRIBUTE_DIRECTORY">FILE_ATTRIBUTE_DIRECTORY</a></td>
        <td class="cont" width="60%">Это каталог.</td></tr>

        <tr class="cont"><td class="cont" width="40%"><a name="FILE_ATTRIBUTE_ENCRYPTED">FILE_ATTRIBUTE_ENCRYPTED</a></td>
        <td class="cont" width="60%">Файл или каталог зашифрован. Для файла, это означает, что все данные в
          файле зашифрованы. Для директория, это означает, что шифрование является умолчанием для
          вновь созданных файлов и подкаталогов.</td></tr>

        <tr class="cont"><td class="cont" width="40%"><a name="FILE_ATTRIBUTE_HIDDEN">FILE_ATTRIBUTE_HIDDEN</a></td>
        <td class="cont" width="60%">Файл скрыт. Такой файл не включается в обычный листинг каталога.</td></tr>

        <tr class="cont"><td class="cont" width="40%"><a name="FILE_ATTRIBUTE_NORMAL">FILE_ATTRIBUTE_NORMAL</a></td>
        <td class="cont" width="60%">У этого файла не установлены другие атрибуты. Это значение
        корректно только при использовании без остальных флагов.</td></tr>

        <tr class="cont"><td class="cont" width="40%"><a name="FILE_ATTRIBUTE_OFFLINE">FILE_ATTRIBUTE_OFFLINE</a></td>
        <td class="cont" width="60%">Данные файла не доступны непосредственно. Означает, что реальные
        данные файла были физически перемещены на устройства хранения.</td></tr>

        <tr class="cont"><td class="cont" width="40%"><a name="FILE_ATTRIBUTE_READONLY">FILE_ATTRIBUTE_READONLY</a></td>
        <td class="cont" width="60%">Файл только для чтения. Приложения могут читать такой файл, но
        не могут записывать или удалять его.</td></tr>

        <tr class="cont"><td class="cont" width="40%"><a name="FILE_ATTRIBUTE_REPARSE_POINT">FILE_ATTRIBUTE_REPARSE_POINT</a></td>
        <td class="cont" width="60%">Каталог является <a href="../other/dict.html#symboliclinks">точкой повторной обработки</a>.</td></tr>

        <tr class="cont"><td class="cont" width="40%"><a name="FILE_ATTRIBUTE_SPARSE_FILE">FILE_ATTRIBUTE_SPARSE_FILE</a></td>
        <td class="cont" width="60%">Файл является т.н. <a href="../other/dict.html#sparsefile">Разрежённый файл</a>.</td></tr>

        <tr class="cont"><td class="cont" width="40%"><a name="FILE_ATTRIBUTE_SYSTEM">FILE_ATTRIBUTE_SYSTEM</a></td>
        <td class="cont" width="60%">Этот файл - часть операционной системы.</td></tr>

        <tr class="cont"><td class="cont" width="40%"><a name="FILE_ATTRIBUTE_TEMPORARY">FILE_ATTRIBUTE_TEMPORARY</a></td>
        <td class="cont" width="60%">Это временный файл. Приложения должны записывать в такой файл
         только в крайней необходимости. Большая часть данных файла
         находится в памяти и не сбрасывается на диск, так как файл будет
         удалён.</td></tr>

        <tr class="cont"><td class="cont" width="40%"><a name="FILE_ATTRIBUTE_NOT_CONTENT_INDEXED">FILE_ATTRIBUTE_NOT_CONTENT_INDEXED</a></td>
        <td class="cont" width="60%">Этот файл или каталог не будут индексироваться службой индексирования.</td></tr>

        <tr class="cont"><td class="cont" width="40%"><a name="FILE_ATTRIBUTE_VIRTUAL">FILE_ATTRIBUTE_VIRTUAL</a></td>
        <td class="cont" width="60%">Этот файл - виртуальный файл.</td></tr>
       </table>
    </div>

    <div class=dfn>ftCreationTime</div>
    <div class=dfndescr>Время создания - структура <a href="filetime.html">FILETIME</a>,
    содержащая время создания файла. <a class="msdocs">FindFirstFile</a> и
    <a class="msdocs">FindNextFile</a>
    возвращают время файла в UTC-формате.
    Эти функции устанавливают элементы <code>FILETIME</code> в ноль, если файловая
    система, содержащая файл, не поддерживает этот временной атрибут.<br>
    Вы можете использовать функцию <a class="msdocs">FileTimeToLocalFileTime</a>
    для преобразования из UTC в локальное время и тогда использовать
    функцию <a class="msdocs">FileTimeToSystemTime</a>
    для преобразования
    локального времени в структуру <a href="systemtime.html">SYSTEMTIME</a>
    содержащую отдельные элементы для месяца, дня, года и так далее...</div>

    <div class=dfn>ftLastAccessTime</div>
    <div class=dfndescr>Структура <a href="filetime.html">FILETIME</a> с временем последнего
    доступа к файлу (чтение, запись, исполнение).<br>
    Для каталогов в этой компоненте содержится информация о времени создания каталога.<br>
    На FAT дата для файлов и каталогов будет правильна, но время дня будет всегда установлено на полночь.<br>
    Время хранится в UTC формате; элементы структуры установлены в ноль, если файловая система не поддерживает этого свойства.
    </div>

    <div class=dfn>ftLastWriteTime</div>
    <div class=dfndescr>Структура <a href="filetime.html">FILETIME</a> с временем последней
    записи в файл (с помощью функций <a class="msdocs">WriteFile</a> или
    <a class="msdocs">SetEndOfFile</a>). Время последней записи не обновляется для таких операций, как
    установка атрибутов файла или изменение дескриптора безопасности (security descriptors).<br>
    Для каталогов в этой компоненте содержится информация о времени создания каталога.
    <br>Время хранится в UTC формате; элементы структуры
    установлены в ноль, если файловая система не поддерживает этого свойства.</div>

    <div class=dfn>nFileSizeHigh</div>
    <div class=dfndescr>Старшее двойное слово 64-х разрядного размера файла в байтах.
    Размер файла равен <code>(<var>nFileSizeHigh</var> * (1+MAXDWORD)) + <var>nFileSizeLow</var></code>.</div>

    <div class=dfn>nFileSizeLow</div>
    <div class=dfndescr>Младшее двойное слово размера файла в байтах.</div>

    <div class=dfn>dwReserved0</div>
    <div class=dfndescr>Если поле <code>dwFileAttributes</code> содержит атрибут
       <code>FILE_ATTRIBUTE_REPARSE_POINT</code>, это поле содержит тип
       <a href="../other/dict.html#symboliclinks">точки повторной обработки</a>.
       В противном случае значение этого поля не определено и не должно
       использоваться.</div>

    <div class=dfn>dwReserved1</div>
    <div class=dfndescr>Резерв.</div>

    <div class=dfn>cFileName</div>
    <div class=dfndescr>Строка с именем файла, заканчивающаяся символом конца строки (0x00).</div>

    <div class=dfn>cAlternateFileName</div>
    <div class=dfndescr>Альтернативное имя файла (классическая 8.3 (filename.ext) форма). </div>

</div>

<h3>Замечания</h3>
<div class=descr>
<ul>
<li>Если файл имеет длинное имя, полное имя возвращается в элементе <code>cFileName</code>
  а усечённая версия формата 8.3 сохраняется в <code>cAlternateFileName</code>.
  Иначе <code>cAlternateFileName</code> пусто.
  Как альтернативу вы можете использовать функцию <a class="msdocs">GetShortPathName</a>
  для возвращения 8.3-вида имени файла.
</li>
<li>Не все файловые системы позволяют хранить время создания файла и
  последнего доступа к нему, и не все системы хранят их одинаково. Например, в
  файловой системе FAT под Windows NT время создания файла записывается с
  разрешением 10 миллисекунд, время последней модификации - 2 секунды, а время
  доступа - 1 день (то есть, фактически, записывается только дата доступа). На
  файловой системе NTFS время доступа имеет разрешение 1 час.
</li>
</ul>
</div>

<div class=see>Смотрите также:</div>
<div class=seecont>
<a href="filetime.html">FILETIME</a>
</div>

</body>
</html>
